#ifndef _MMU_H
#define _MMU_H

#include <types.h>

enum mmu_mem_type {
	MMT_DEVICE	= 0,
	MMT_ROM		= 1,
	MMT_RAM		= 2,
	MMT_DMA		= 3,
};

typedef enum mmu_mem_type mmu_mem_type_t;

struct mmu_mem_map {    
    uint32_t virt_addr;  
    uint32_t phys_addr;  
    uint32_t length;     
    mmu_mem_type_t type;   
};  

int mmu_init(void);
int mmu_get_map(uint32_t virt_addr, uint32_t length, struct mmu_mem_map *map);
int mmu_set_map(struct mmu_mem_map *map);
int mmu_del_map(uint32_t virt_addr, uint32_t length);

#endif /* _MMU_H */  

